μž‘μ„±: 2026-03-04 02:11:43μˆ˜μ •: 2026-03-04 02:11:43

Java 버전별 μ£Όμš” νŠΉμ§• 및 지원 κΈ°κ°„ (LTS 쀑심)

JavaλŠ” ν˜„μž¬ 2λ…„ 주기둜 LTS(Long-Term Support) 버전을 μΆœμ‹œν•˜λ©°, ν˜„λŒ€μ μΈ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ μ§€μ†μ μœΌλ‘œ μ§„ν™”ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 κΈ€μ—μ„œλŠ” μ‹€λ¬΄μ—μ„œ 주둜 μ‚¬μš©λ˜λŠ” LTS λ²„μ „λ“€μ˜ 차이점과 지원 λ‘œλ“œλ§΅μ„ μ •λ¦¬ν•©λ‹ˆλ‹€.


1. Java LTS 버전 지원 λ‘œλ“œλ§΅

Java의 각 버전은 벀더(Oracle, Red Hat, Eclipse λ“±)에 따라 지원 기간이 λ‹€λ₯΄μ§€λ§Œ, 일반적으둜 Oracle의 κ°€μ΄λ“œλΌμΈμ„ κΈ°μ€€μœΌλ‘œ ν•©λ‹ˆλ‹€.

λ²„μ „μΆœμ‹œμΌν”„λ¦¬λ―Έμ–΄ 지원 μ’…λ£Œμ—°μž₯ 지원 μ’…λ£ŒλΉ„κ³ 
Java 82014λ…„ 3μ›”2022λ…„ 3μ›”2030λ…„ 12μ›”μ—¬μ „νžˆ ν˜„μ—… 점유율 λ†’μŒ
Java 112018λ…„ 9μ›”2023λ…„ 9μ›”2032λ…„ 1μ›”λͺ¨λ“ˆ μ‹œμŠ€ν…œ μ•ˆμ •ν™”
Java 172021λ…„ 9μ›”2026λ…„ 9μ›”2029λ…„ 9μ›”ν˜„μž¬ κ°€μž₯ ꢌμž₯λ˜λŠ” 버전
Java 212023λ…„ 9μ›”2028λ…„ 9μ›”2031λ…„ 9월가상 μŠ€λ ˆλ“œ(Loom) λ„μž…
Java 252025λ…„ 9μ›”2030λ…„ 9μ›”2033λ…„ 9μ›”μ΅œμ‹  LTS 버전

Tip: μ‹ κ·œ ν”„λ‘œμ νŠΈλΌλ©΄ μ΅œμ†Œ Java 17 이상을 μ„ νƒν•˜λŠ” 것이 λ³΄μ•ˆ 및 μ„±λŠ₯ λ©΄μ—μ„œ μœ λ¦¬ν•˜λ©°, μ΅œμ‹  κΈ°λŠ₯을 μœ„ν•΄ Java 21μ΄λ‚˜ Java 25λ₯Ό κ³ λ €ν•΄ λ³΄μ„Έμš”.


2. LTS 버전별 μ£Όμš” λ³€ν™” (What's New?)

Java 8: ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ˜ μ‹œμž‘

  • Lambda Expressions & Streams: μžλ°”μ— ν•¨μˆ˜ν˜• νŒ¨λŸ¬λ‹€μž„μ„ λ„μž…ν•˜μ—¬ μ½”λ“œλ₯Ό κ°„κ²°ν•˜κ²Œ μž‘μ„±ν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
  • Optional Class: NullPointerException λ°©μ§€λ₯Ό μœ„ν•œ ν‘œμ€€ν™”λœ 객체 핸듀링.
  • New Date/Time API: 기쑴의 문제 λ§Žμ€ Date, Calendarλ₯Ό λŒ€μ²΄ν•˜λŠ” java.time νŒ¨ν‚€μ§€ λ„μž….

Java 11: ν˜„λŒ€ν™”μ™€ μ •λˆ

  • var ν‚€μ›Œλ“œ: μ§€μ—­ λ³€μˆ˜μ— λŒ€ν•œ νƒ€μž… 좔둠을 μ§€μ›ν•˜μ—¬ 가독성을 λ†’μ˜€μŠ΅λ‹ˆλ‹€.
  • HTTP Client API: ν‘œμ€€ν™”λœ 비동기 HTTP 톡신을 μ§€μ›ν•˜λŠ” ν˜„λŒ€μ μΈ ν΄λΌμ΄μ–ΈνŠΈ API.
  • Oracle JDK μœ λ£Œν™” λŒ€μ‘: OpenJDK μ€‘μ‹¬μ˜ μƒνƒœκ³„λ‘œ μ „ν™˜λ˜λŠ” μ‹œμ .

Java 17: 생산성 ν–₯μƒμ˜ μ™„μ„±

  • Sealed Classes: 상속 및 κ΅¬ν˜„μ΄ κ°€λŠ₯ν•œ 클래슀λ₯Ό μ œν•œν•˜μ—¬ μ½”λ“œμ˜ μ•ˆμ „μ„±μ„ κ°•ν™”.
  • Records: 데이터 μ€‘μ‹¬μ˜ 클래슀(DTO λ“±)λ₯Ό μž‘μ„±ν•  λ•Œ λ³΄μΌλŸ¬ν”Œλ ˆμ΄νŠΈ μ½”λ“œλ₯Ό 획기적으둜 μ€„μ—¬μ€λ‹ˆλ‹€.
  • Pattern Matching for instanceof: νƒ€μž… 체크와 μΊμŠ€νŒ…μ„ ν•œ λ²ˆμ— 처리.

Java 21: λ™μ‹œμ„± 혁λͺ…

  • Virtual Threads (Project Loom): 기쑴의 무거운 OS μŠ€λ ˆλ“œ λŒ€μ‹  κ°€λ²Όμš΄ 가상 μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 수백만 개의 λ™μ‹œ μš”μ²­μ„ 효율적으둜 처리.
  • Sequenced Collections: λ¦¬μŠ€νŠΈμ™€ μ…‹μ—μ„œ 첫 번째/λ§ˆμ§€λ§‰ μš”μ†Œμ— μ ‘κ·Όν•˜λŠ” ν‘œμ€€ν™”λœ 방식 제곡.
  • Record Patterns: λ ˆμ½”λ“œ 객체의 데이터λ₯Ό μ‰½κ²Œ λΆ„ν•΄ν•˜κ³  μΆ”μΆœ.

Java 25: μ„±λŠ₯κ³Ό AI μ‹œλŒ€μ˜ μ™„μ„±

  • Compact Object Headers: 객체 헀더 크기λ₯Ό 쀄여 λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ μ΅œμ ν™” 및 μ„±λŠ₯ ν–₯상.
  • Flexible Constructor Bodies: super() 호좜 μ „ 둜직 싀행이 κ°€λŠ₯ν•΄μ Έ μƒμ„±μž κ΅¬ν˜„μ΄ μœ μ—°ν•΄μ§.
  • Structured Concurrency: μ—¬λŸ¬ 비동기 μž‘μ—…μ„ ν•˜λ‚˜μ˜ μž‘μ—… λ‹¨μœ„μ²˜λŸΌ κ΄€λ¦¬ν•˜μ—¬ μ•ˆμ •μ„± κ°•ν™”.
  • Vector API: κ³ μ„±λŠ₯ 수치 μ—°μ‚° 및 AI κ΄€λ ¨ 계산 μ΅œμ ν™” 지원.

3. Java 8μ—μ„œ μƒμœ„ λ²„μ „μœΌλ‘œμ˜ μ „ν™˜μ΄ μ–΄λ €μš΄ 이유

λ‹¨μˆœνžˆ 버전 숫자만 μ˜¬λ¦¬λŠ” 것이 μ•„λ‹ˆλΌ, Java 9μ—μ„œ λ„μž…λœ ꡬ쑰적 λ³€ν™”κ°€ κ°€μž₯ 큰 μž₯λ²½μž…λ‹ˆλ‹€.

β‘  Project Jigsaw (λͺ¨λ“ˆ μ‹œμŠ€ν…œ) λ„μž…

Java 9λΆ€ν„° λ„μž…λœ λͺ¨λ“ˆ μ‹œμŠ€ν…œμ€ JDK λ‚΄λΆ€μ˜ μΊ‘μŠν™”λ₯Ό κ°•ν™”ν–ˆμŠ΅λ‹ˆλ‹€. λ§Žμ€ μ˜€ν”ˆμ†ŒμŠ€ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ 기쑴의 λ‚΄λΆ€ API에 μ˜μ‘΄ν•˜κ³  μžˆμ–΄, 라이브러리 μ—…λ°μ΄νŠΈκ°€ λ™λ°˜λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

β‘‘ Java EE λͺ¨λ“ˆμ˜ 제거 (Java 11)

JDK에 ν¬ν•¨λ˜μ–΄ 있던 JAXB, JAX-WS λ“± Java EE κ΄€λ ¨ λͺ¨λ“ˆλ“€μ΄ μ‚­μ œλ˜μ–΄, μ΄μ œλŠ” μ™ΈλΆ€ 라이브러리둜 별도 관리해야 ν•©λ‹ˆλ‹€.

β‘’ κ°€λΉ„μ§€ 컬렉터(GC)의 λ³€ν™”

κΈ°λ³Έ GCκ°€ Parallelμ—μ„œ G1 GC둜 λ³€κ²½λ˜λ©΄μ„œ μ„±λŠ₯ νŠΉμ„±μ΄ λ‹¬λΌμ‘ŒμœΌλ―€λ‘œ, μ„Έλ°€ν•œ νŠœλ‹μ΄ λ‹€μ‹œ ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


4. μ–΄λ–€ 버전을 선택해야 ν• κΉŒ?

  • μ•ˆμ •μ„±μ΄ μ΅œμš°μ„ μΈ κΈ°μ‘΄ μ„œλΉ„μŠ€: Java 11 λ˜λŠ” 17
  • μ‹ κ·œ μ„œλΉ„μŠ€ 개발: Java 17 (Spring Boot 3.x μ΅œμ†Œ 사양) ν˜Ήμ€ Java 21
  • μ΅œμ²¨λ‹¨ μ„±λŠ₯κ³Ό AI κΈ°λŠ₯ ν™œμš©: Java 25

JavaλŠ” 더 이상 "느리고 무거운" μ–Έμ–΄κ°€ μ•„λ‹™λ‹ˆλ‹€. 25 버전 μ΄ν›„μ˜ JavaλŠ” ν˜„λŒ€μ μΈ κΈ°λŠ₯듀을 λŒ€κ±° ν¬ν•¨ν•˜λ©° λ‹€μ‹œ ν•œλ²ˆ λŒ€μ„Έ μ–Έμ–΄λ‘œμ„œμ˜ 자리λ₯Ό ꡳ히고 μžˆμŠ΅λ‹ˆλ‹€.